1. Field of the Invention
The present invention relates to a technology of sharing a graphics card device, and more specifically, to a method for sharing a graphics card among multiple Operation Systems (OSs) and a computer system.
2. Description of Prior Art
By virtue of virtualization, it is possible to run multiple Guest Operation Systems (GOSs) on one same hardware platform. Display Contents from the multiple GOSs may be outputted to an external display device through one graphics card device so as to be displayed. That is, the multiple OSs perform their respective display by sharing the graphics card device.
According to a conventional technique in the virtualization field, the GOSs all use respective virtual graphics cards, and only one host OS uses the physical graphics card device. Such method has a disadvantage that the display performance of the GOSs is very poor, and many acceleration properties cannot by supported.
A recent technique provides a possibility for the GOSs to directly use the physical graphics card. However, only one GOS has the display output while the remaining OSs cannot have output through the graphics card.
To solve such problem, there have been proposed some techniques where the multiple GOSs all directly operate the physical graphics card device and they operate in a serial manner by means of some certain methods. Among them, a typical way is graphics card memory separation+register simulation. Specifically, the respective OSs use different resources of the graphics card memory, and each of them has a simulation register bank. When a certain OS needs to be displayed in the foreground, values of the registers for this OS are written into the real device, so as to display this OS.
However, the above method has the following disadvantage. Since the resources used by the respective OSs are completely separate from each other, it is necessary to modify device drivers for the graphics card of the respective OSs, and the amount of such modification is large. Further, since modern graphics card registers are very complex, it is very difficult to simulate all the registers. When an OS in the background is using the simulation registers, if the simulation is not proper, there will be an error in the graphics card, even causing the system down.